home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 7
/
FM Towns Free Software Collection 7.iso
/
ms_dos
/
attr
/
attr.asm
next >
Wrap
Assembly Source File
|
1993-11-30
|
1KB
|
136 lines
INCLUDE STD.H
CODE SEGMENT
ASSUME CS:CODE, DS:CODE, ES:CODE
ORG 80H
CMDLEN DB ?
CMDBUF DB 127 DUP(?)
ORG 100H
START:
MOV BL, CMDLEN
CMP BL, 4
JNB SWITCH
JMP USE
SWITCH:
XOR BH, BH
CMP CMDBUF[BX - 2], '/'
JE SW_OK
JMP USE
SW_OK:
MOV DX, OFFSET CMDBUF[1]
MOV CMDBUF[BX - 2], 0
MOV AX, 4300H
INT 21H
JNC CHKCX
JMP ERROR
CHKCX:
TEST CX, SBD
JE SUBD
TEST CX, LBL
JE LABL
JMP SHORT GETSW
SUBD:
MOV TRG, NOT 10H
JMP SHORT GETSW
LABL:
MOV TRG, NOT 08H
JMP SHORT GETSW
GETSW:
MOV AL, CMDBUF[BX - 1]
CMP AL, '?'
JNE GET1
JMP LIST
GET1:
AND AL, NOT('A' XOR 'a')
CMP AL, 'R'
JE R
CMP AL, 'W'
JE W
CMP AL, 'H'
JE H
CMP AL, 'N'
JE N
CMP AL, 'S'
JE S
CMP AL, 'B'
JE B
JMP SERROR
R:
OR CX, READ_ONLY
CMP CX, READ_ONLY + HIDDEN
JE S
JMP CHANGE
W:
AND CX, NOT READ_ONLY
JMP CHANGE
H:
OR CX, HIDDEN
CMP CX, HIDDEN + READ_ONLY
JE S
JMP CHANGE
N:
AND CX, NOT HIDDEN
JMP SHORT CHANGE
S:
MOV CX, SYSTEM
JMP SHORT CHANGE
B:
AND CX, 00100011B
JMP SHORT CHANGE
CHANGE:
MOV AX, 4301H
INT 21H
JC ERROR
XOR AL, AL
JMP RETURN
SERROR:
PRINT SERRMSG
MOV AL, 1
JMP RETURN
ERROR:
PRINT ERRMSG
MOV AL, 2
JMP RETURN
USE:
PRINT USEMSG
JMP RETURN
INCLUDE CHK.ASM
RETURN:
CRLF
MOV AH, 4CH
INT 21H
INCLUDE ATTR.DEF
CODE ENDS
END START